package LeetCode算法;

import java.util.HashMap;
import java.util.HashSet;

/**
 * 给定一个字符串
 * 需要找出这个字符串中没有重复字符的最大长度
 */
public class 找到没有重复的字符串的最大长度 {



    //解法一
    public int lengthOfLongestSubstring(String s){
        int n = s.length();//获取字符串长度
        int ans = 0;//定义不重复字符串的最大长度，初始值为0，后面在重新赋值
        for (int i = 0; i < n; i++){
            for (int j = 0; j <= n; j++){//为什么是j <= n？原因在于j作为最后一个字符索引，是要做减数，且字符串索引索引从0开始
                if (allUnique(s, i, j)) ans = Math.max(ans, j - i);//
            }
        }
        return ans;
    }
    public boolean allUnique(String s,int start,int end){
        HashSet<Character> set = new HashSet<Character>();
        for (int i = start; i < end; i++){
            Character ch = s.charAt(i);
            if (set.contains(ch)) return false;
            set.add(ch);
        }
        return true;
    }
}



